package 状态机.请假demo.handler.impl;

import 状态机.请假demo.entity.LeavePermit;
import 状态机.请假demo.handler.CommonStatusHandler;

/**
 * 各种休假的公共处理类
 * <p>
 * 该类表示本次请假流程申请失败
 * <p>
 * 既然是假条的公共处理类，所以要实现公共接口
 */
public class Fail extends CommonStatusHandler {
    @Override
    protected void doSpecificHandler(LeavePermit leavePermit) {
        System.out.println(String.format("user:%s--审请%s失败--leavePermit.status is:%s",
                leavePermit.getUser(), leavePermit.getLeavePermitType().getMemo(),
                leavePermit.getStatus().getStatus()));
    }

    /**
     * 请假失败需要阻止代码进入嵌套调用
     * 以便于让代码即时自动终止审批流程
     *
     * @param leavePermit
     */
    @Override
    public void after(LeavePermit leavePermit) {
        return;
    }
}
